package xyz.xtt.admin.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.validation.constraints.NotBlank;
import org.springframework.web.multipart.MultipartFile;
import xyz.xtt.admin.entity.TblAsset;
import com.baomidou.mybatisplus.extension.service.IService;
import xyz.xtt.admin.request.AssetRequest;
import xyz.xtt.admin.request.GiftRequest;
import xyz.xtt.admin.vo.AssetHandleVo;
import xyz.xtt.admin.vo.AssetListVo;
import xyz.xtt.admin.vo.AssetVo;
import xyz.xtt.asset.client.request.MintRequest;
import xyz.xtt.asset.client.request.TransferFromRequest;
import xyz.xtt.asset.client.response.MintResponse;
import xyz.xtt.asset.client.response.TransferFromResponse;
import xyz.xtt.common.response.ApiResult;

import java.util.Map;

/**
 * <p>
 * 资产基础信息表 服务类
 * </p>
 *
 * @author author
 * @since 2024-11-21
 */
public interface IAssetService extends IService<TblAsset> {

    /**
     * @param assetRequest
     * @return
     */
    Page<AssetListVo> getList(AssetRequest assetRequest) throws Exception;

    AssetVo get(Long id);

    Boolean seAssetSellPattern(Long idL, String goodsid, Integer status);

    MintResponse mint(MintRequest mintRequest);

    Boolean transferFrom(GiftRequest giftRequest);


    /**
     * 资产回收
     */
    Integer assetReuse(AssetHandleVo handleVo,MultipartFile file);

    /**
     * 资产空投
     */
    Integer assetDrop(AssetHandleVo handleVo,MultipartFile file) throws Exception;

}
